perm filename NILLS.TO[P,JRA] blob
sn#128585 filedate 1974-10-31 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Hi:
C00008 ENDMK
C⊗;
Hi:
Let me give you a slight introduction to the manuscript. It grew out
of a course on data structures I developed at UCLA. I expanded and
revised the notes here at Stanford, and have taught variants at Bill
McKeeman's graduate workshop the last two years. I will be helping
San Jose State set up their graduate data structures courses next
semester and will use the manuscript there. A few students in
Cordell's CS206 students used it, and students of Tony Hearn at Utah
are currently using it.
The manuscript will attempt to be self-contained because I think LISP
is the best way to introduce prospective students to the field. The
fewer preconceptions about programming languages, the better. Thus
the book goes from very basic undergraduate material to current
research in semantics. The material on λ-calculus and Scott's models
is currently VERY rudimentary. I am attempting to develop an
intuitive introduction to these areas.
Basically the material falls into 5 areas: (1) the mechanics of the
language; recursion, functional arguments. Representation of
algorithms in a programming language, representation of domains as
data structures; (2)evaluation; the importance of interpretation and
its relation to denotational models, (3)implementation and the
problems of machine orgainzation, (4)compilers for LISP; LISP, being
a very clean way to introduce compilation, (5)implications for
language design; given a clear understanding of LISP, what can be
done better. This comes from my own ideas on a LISP-like language
with user-defined data structures and a semantics which is more
amenable to proofs and verifications.
My writing style is definitely informal. I don't believe that it is
necessary to be deadly serious in discussion an area as informal as
programming languages. Besides I never met a real LISP hacker who did
not have a sense of humor. I do NOT want to appear flippant or to be
imprecise; either of these faults is deadly. Two reviewers objected
to the style, six made explicit positive comments.
Now, the state of the manuscript. Parts (1), (2), and (5) are in
reasonable shape; perhaps 80% complete. Part (3) perhaps 50%;
implementation without machines is unsettling for many students, but
so much is irrelevant. I tried graphical methods the last time, but
...; Part (4), on compilers, perhaps 70% completed.
The reviews have been quite favorable, and I am convinced that the
manuscript should be published. LISP is the most most poorly
understood programming language around, and it gets a little tiresome
to see people re-inventing McCarthy's ideas simply because there's no
decent documentation. There's a succinct statement by Strachey which
I think represents position and the current stateof affairs: "I
always worked on programming languages because it seems to me until
you could understand those, you couldn't understand computers.
Understanding them doesn't really mean only being able to use them. A
lot of people can use them without understanding them." This quote
goes at the beginning of the chapter on evaluation!
Here are some of the guinea pigs who read most, if not all: D. B.
Anderson, F. vonHenke, J. S. Moore, M. J. Clancy, H. Sammet, A. C.
Hearn, J. Morales. Parts have been read by L. Quam, M. Gordon, D.
Luckham, A. Thomas. In all, 15-20 "people" have read parts of the
manuscript; ennumerable "students" have made comments.